package QC.MessageBox.beans.wbmsg;

import io.vertx.core.json.JsonObject;

import java.io.IOException;
import java.net.URLEncoder;

/**
 * Created by Andaren on 2017/6/29.
 * Used for: 用于微博回复
 */
public class WBTextMsg {

    private String access_token;        // 在粉丝服务平台 - 高级功能 - 开发者模式页面中获取，或者OAuth2.0授权后获得, 详细参考 获取粉丝服务平台开发接口的access token。
    private String type;                // 需要以何种类型的消息进行响应，text：纯文本、articles：图文、position：位置。
    private String data;                // 消息数据，具体内容严格遵循type类型对应格式，必须为json做URLEncode后的字符串格式，采用UTF-8编码。
    private Long receiver_id;         // 消息接收方的ID。
    private Integer save_sender_box = 1;     // 取值为0或1，不填则默认为1。取值为1时，通过本接口发送的消息会进入发送方的私信箱；取值为0时，通过本接口发送的消息不会进入发送方的私信箱。

    public String getAccess_token() {
        return access_token;
    }

    public WBTextMsg setAccess_token(String access_token) {
        this.access_token = access_token;
        return this;
    }

    public String getType() {
        return type;
    }

    public WBTextMsg setType(String type) {
        this.type = type;
        return this;
    }

    public String getData() {
        return data;
    }

    public WBTextMsg setData(String data) {
        this.data = data;
        return this;
    }

    public Long getReceiver_id() {
        return receiver_id;
    }

    public WBTextMsg setReceiver_id(Long receiver_id) {
        this.receiver_id = receiver_id;
        return this;
    }

    public Integer isSave_sender_box() {
        return save_sender_box;
    }

    public WBTextMsg setSave_sender_box(Integer save_sender_box) {
        this.save_sender_box = save_sender_box;
        return this;
    }

    public String toMsgStr () {
        StringBuilder sb = new StringBuilder();
        try {
            String encodedJson = URLEncoder.encode(new JsonObject().put("text", this.data).encode(), "utf-8");
            sb.append("type=").append(type)
                    .append("&data=").append(encodedJson)
                    .append("&receiver_id=").append(receiver_id)
                    .append("&save_sender_box=").append(save_sender_box);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return sb.toString();
    }
}
